Micron Document
██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝


🬧 The NomadNet Encyclopedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

🔍 Search

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

General Instrument AY-3-8910
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Il mwcaGeneral Instrument AY-3-8910 è un mwcqgeneratore sonoro programmabile, o "PSG" (da mwcgProgrammable Sound Generator) a 3 voci progettato da mwcwGeneral Instrument. Fu anche prodotto sotto licenza da parte della mwdaYamaha (con modifiche minori come per esempio il pin per selezionare il mwdqdivisore di frequenza o una tabella di inviluppo del volume con risoluzione doppia ma con doppia frequenza) con il nome mwdgYM2149F.

Contents

Storia
Usi

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Storia

Dopo la separazione del 1987 di mwegMicrochip Technology da mwewGeneral Instrument, il chip fu prodotto per alcuni anni con il nuovo marchio "Microchip".

Ad oggi tali chip non vengono più prodotti, ma uno stock in esaurimento è ancora ottenibile per la riparazione delle macchine vintage. È anche stata scritta una descrizione equivalente in mwfqVHDL, che può essere usata in una mwfgFPGA per la ricreazione di mwfwmacchine arcade e le altre sopra menzionate. Il mwgacodice sorgente VHDL è disponibile in Internet, e compilato riempie intorno al 10% di un FPGA mwgqXilinx XC2S300.

Descrizione

Inizialmente era stato pensato per essere usato con il loro microprocessore a 16 bit mwhaCP1610 o con uno dei microprocessori ad 8 bit della serie PIC1650. L'AY-3-8910 e le sue varianti divennero chip popolari in parecchi mwhqvideogiochi arcade e furono usati, tra gli altri, dalle mwhgconsole di gioco mwhwIntellivision e mwiaVectrex e negli mwiqhome computer mwigMSX, mwiwAtari ST, mwjaAmstrad CPC, mwjqOric 1, mwjgColour Genie, Elektor TV Games Computer e Sinclair mwkaZX Spectrum 128/+2/+3 nonché nella scheda sonora Mockingboard per la famiglia degli mwkgApple II.

L'AY-3-8910 era essenzialmente una mwlamacchina a stati, dove lo stato era registrato in una serie di quattordici mwlqregistri ad mwlg8-bit. Questi erano programmati con un bus ad 8-bit che veniva usato sia per l'indirizzamento che per i dati, selezionando una delle due modalità cambiando il valore su uno dei pin esterni. Per esempio, un tipico ciclo di settaggio avrebbe prima messo il bus nella "modalità indirizzamento" per selezionare un registro e poi nella "modalità dati" per impostare il contenuto di tale registro.

Sei registri controllano le tonalità prodotte nei tre canali principali. La lunghezza d'onda da generare è impostata in due registri ad otto bit dedicati ad ogni canale, anche se il valore è limitato a 12 bit per altre ragioni, per un totale di 4096 differenti tonalità. Un altro registro controlla il periodo di un generatore pseudocasuale di rumore, mentre un altro registro controlla il mixaggio di questo rumore nei tre canali principali. Tre registri addizionali controllavano il volume dei tre canali e permettevano di attivare o disattivare l'opzionale controllo sull'inviluppo sui canali. Gli ultimi tre registri controllano la temporizzazione del controllore dell'mwmainviluppo ADSR, impostando la durata per ogni stadio del ciclo ADSR. Diversamente dalla maggior parte dei sistemi, l'8910 usa dei tempi prefissati per la fase di sustain e release, e un pattern di attack e decay ripetibile. Per esempio il sistema può ripetere il ciclo di AD del suono più e più volte, o in alternativa invertirlo, partendo al massimo volume e riducendolo al livello di sustain senza una qualsiasi fase di attack.

Ci sono due ulteriori registri che non compongono la macchina a stati del chip e che servono come registri per la memorizzazione di dati i cui valori sono messi in uscita sulle due porte di I/O ognuna ad 8 bit. Usare questi due registri per il trasferimento di dati I/O non ha alcun effetto sulla generazione sonora. Queste due porte non sono disponibili su tutti i modelli del chip. Il chip produce un risultato molto simile a quello del mwmgTexas Instruments SN76489, presente sul mercato nel medesimo periodo.

da aggiungere alla versione inglese: There are two more registers that don't partecipate to compose the state machine. This two registers function as intermediate data storage registers whose value are outputted to two I/O ports. Using this two registers for the transfer of I/O data has no effect on sound generation. These 2 port are not available on every model.

Versioni

Il chip 8910 in silicio era venduto in tre differenti package.

L'mwqaAY-3-8910 ha due porte parallele ad 8-bit di mwqqI/O di tipo general-purpose, A e B, e queste sono disponibili nel package a 40-pin dello stesso nome.

L'mwqwAY-3-8912 è lo stesso chip in un package a 28-pin, con la mwraporta parallela B semplicemente non connessa ai pin del chip. I package più piccoli risparmiano costi e spazio sulle schede. Proprio per questo l'8912 era ampiamente la versione più popolare.

L'mwrgAY-3-8913 è lo stesso chip in un package a 24-pin, con entrambe le porte parallele non connesse. La piccola riduzione nel numero totale dei pin rispetto all'8912, lo rende meno interessante.

Il chip mwsaYamaha mwsqYM2149F SSG (da "Software-controlled Sound Generator") ha la stessa piedinatura dell'AY-3-8910, con la differenza che il piedino 26 può dimezzare la frequenza di clock principale se messo a massa. Se lasciato scollegato, cosa che succede quando viene usato per sostituire un chip AY-3-8910, una resistenza interna si occupa di tenere il segnale sul piedino alto, così che il segnale di clock principale non viene dimezzato.

Lo Yamaha mwswY3439-F.

L'mwtqAY-3-8914 ha la stessa piedinatura e lo stesso package a 40 pin dell'mwtgAY-3-8910, eccetto che i registri di controllo sul chip sono mischiati, e che l'"expected input" sul pin A9 può essere diverso. Tranne questo, è esattamente identico all'mwtwAY-3-8910. Era usato sull'mwuaIntellivision della mwuqMattel.

L'mwuwAY-3-8930 in DIP40, anche conosciuto come mwvaAY8930, è una versione avanzata ma in larga parte retrocompatibile con lo mwvqAY-3-8910. La funzione del pin BC2 è stata cambiata (è ignorato e viene assunto che lo stato del piedino sia 0), altrimenti la funzione associata ai pin sarebbe la stessa dell'mwvgAY-3-8910. Questa variante del chip aggiunge una certa quantità di miglioramenti come per esempio, inviluppi separati per i tre canali (in contrasto all'inviluppo condiviso), duty-cycle variabili, più bit di precisione per la frequenza delle note, volume, e frequenza dell'inviluppo, e un generatore di rumori molto più configurabile. Era usato sulla scheda sonora per l'IBM-PC Covox Sound Master. Un'esigua parte dei giochi si avvantaggiarono del processore oltre le normali caratteristiche dell'mwwaAY-3-8910. Questo chip è stato probabilmente prodotto solo da mwwqMicrochip Technology.

Usi

Sebbene il chip non fosse stato progettato per gestire dati grezzi in formato mwxaPCM (mwxqsonoro digitale), l'effetto può essere simulato. Il chip usava una semplice funzione di mixaggio di tipo OR per combinare rumore e generazione di toni dei suoi tre canali e poteva essere forzato a produrre un'onda a livello costante (livello non nullo). Alterando il volume, questo livello dell'onda poteva essere plasmato per ottenere la mwxgforma d'onda desiderata. Ovviamente, questo comportava un utilizzo più intensivo della CPU rispetto all'utilizzo di chip progettati espressamente per questo scopo (come per esempio il mwxwMOS Technology 8364 "Paula" usato nel mwyaCommodore Amiga); cionodimeno questa tecnica era ampiamente usata sulle piattaforme come l'mwyqAtari ST per riprodurre musica campionata, e sull'mwygAmstrad CPC o lo mwywZX Spectrum per riprodurre piccoli campioni audio in alcuni giochi.

Facendo la stessa cosa ma un minor numero di volte al secondo (nell'ordine di un centinaio di volte al secondo) si può rimpiazzare la limitata funzionalità di gestione dell'inviluppo (ottenendo qualsiasi inviluppo si possa pensare), e per ultimo, ma non per questo meno importante, lavorare con i tre canali in modo indipendente. Questa operazione utilizza una potenza di CPU trascurabile (questo nel caso ci sia qualche interrupt gestito da timer o che ci sia l'interrupt di vertical blank) e può quindi essere usata nei giochi.

Ora a sua volta, la funzionalità dell'inviluppo risulta inutile e può essere regolata a frequenze molto alte, generando in realtà una forma d'onda che non è l'usuale onda quadra. La granularità con la quale è possibile impostare tali alte frequenze è comunque grossolana, e così la musica composta per il chip generalmente impiega tale tecnica solo per una linea di basso (percussioni, basso elettrico etc...).

Un altro metodo è quello di impostare in modo fisso un canale a un livello alto, e poi usare il controllo del volume come un semplice mwzwconvertitore digitale-analogico logaritmico a 4-bit. Questo risultava però in una qualità audio scarsa, perché aveva solo 16 livelli di uscita e questi erano spaziati tra di loro logaritmicamente.

Un metodo più sofisticato era l'uso di tutti i tre canali collegati insieme, e di sfruttare la non linearità del mixaggio per produrre parecchi livelli di uscita intermedi. Dopo aver modellato la non linearità dei tre canali, gli sviluppatori devono trovare i valori adeguati attraverso una ricerca esaustiva. Dopo averla realizzata, devono produrre una tabella di lookup (tabella di mappatura) da 8-bit (valore del campione audio) per ottenere 3x4-bit (3 canali x 4 bit di volume). Questo permetteva di riprodurre i campioni audio in modo ragionevole, sebbene non in modo ottimale come può essere ottenuto da un reale convertitore D/A ad 8-bit. Il problema di questa tecnica era che durante la riproduzione non si poteva cambiare il valore dei tre volumi in un'operazione singola. Questo implicava livelli d'uscita indesiderati tra due campioni successivi.

Nel 2006 due sviluppatori dell'mwagMSX crearono un encoder (codificatore) avanzato che convertiva un file di tipo wave a un'ottimale codifica di transazioni dei canali PSG usando l'mwawalgoritmo di Viterbi. Riprodussero un file wave a 44.1mwba kHz su un MSX vecchio di 23 anni con un mwbqrapporto segnale/rumore addirittura migliore rispetto a quello di un convertitore DAC ad 8-bit. La ricerca secondo l'algoritmo di Viterbi è piuttosto CPU intensive (richiede parecchia potenza di calcolo) e quindi, anche se fosse stato teoricamente possibile usare questo metodo già negli anni 80, non c'era ancora un computer abbastanza potente per poter effettuare l'analisi richiesta.

mwcaVoce principale: mwcqChiptune

Il chip AY è stato usato da un certo numero di gruppi musicali, come gli AY Riders (si veda il riferimento esterno più sotto). Alcuni dei lavori di tali gruppi sono in stile con la musica dei giochi dei computer dell'epoca; altri invece sono composizioni musicali nel loro pieno diritto.

Sono stati scritti alcuni programmi specifici per scrivere musica per il chip AY, come per esempio mwdaVortex Tracker.

Chip correlati

Yamaha usava il nucleo dell'YM2149F per produrre un'intera famiglia di chip sonori che erano usati nei cellulari, negli home computer, nei sistemi di videogioco sia casalinghi che arcade, ecc. Per esempio lo mwdwYM-2203 (conosciuto anche come OPN) è un YM2149F con in più una mweasintesi FM. Questo accade anche nei successori più avanzati di questo chip: lo mweqYM2608 (conosciuto anche come OPNA) che teneva immutate tutte le precedenti caratteristiche e che si sviluppava ampiamente a partire da queste; lo mwegYM2612 (conosciuto come OPN2) che era una versione ridotta dell'YM2608 da cui sono state rimosse molte caratteristiche tra cui i canali sonori dell'YM2149F e le porte di I/O; lo mwewYM2610 (OPNB) che aggiungeva altre caratteristiche e manteneva il sonoro dell'YM2149F ma non le porte di I/O.

Altri progetti

Altri progetti

• Wikimedia Commons

• Wikimedia Commons contiene immagini o altri file su General Instrument AY-3-8910

Collegamenti esterni

• mwgaAY-3-8914, AY-3-8916 e AY-3-8917, su intelliwiki.kylesblog.com. URL consultato il 19 ottobre 2010 (archiviato dall'url originale l'8 aprile 2008).
• mwggST SOUND, Ascoltiamo il chip AY-3-8910, su atarimagazines.com.
• mwhaHomepage dell'AY-3-8910, AY-3-8912 e YM2149 (emulatore del chip AY per Win32, grande archivio di musica per l'AY, su bulba.untergrund.net.
• mwhgAlcune implementazioni VHDL di Macchine Arcade in FPGA, su fpgaarcade.com.
• mwiaDocumentazione per l'Amstrad CPC inclusi i Datasheet dell'AY